home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / progrmng / cmlmcmpw.sit / Caml Light / Lib / fstring.mli < prev    next >
Encoding:
Text File  |  1991-05-01  |  3.1 KB  |  64 lines  |  [TEXT/MPS ]

  1. (* String operations, without sanity checks.
  2.    THIS INTERFACE IS UNSAFE: CALLING THESE FUNCTIONS WITH WRONG PARAMETERS
  3.    CAN CRASH THE PROGRAM. *)
  4.  
  5. value string_length : string -> int = 1 "string_length"
  6.         (* Returns the length (number of characters) of the given string. *)
  7. ;;
  8. value nth_char : string -> int -> char = 2 "get_nth_char"
  9.         (* "nth_char s n" returns character number n in string s.
  10.            The first character is character number 0.
  11.            The last character is character number string_length s - 1.
  12.            Anything can happen if n is ouside the range
  13.            0 .. (string_length s - 1). *)
  14.   and set_nth_char : string -> int -> char -> char = 3 "set_nth_char"
  15.         (* "set_nth_char s n c" physically modifies string s,
  16.            replacing character number n by character c.
  17.            Anything can happen if n is ouside the range
  18.            0 .. (string_length s - 1). *)
  19. ;;
  20. value prefix ^ : string -> string -> string
  21.         (* "s1 ^ s2" returns a fresh string containing the concatenation of
  22.            strings s1 and s2. *)
  23.   and sub_string : string -> int -> int -> string
  24.         (* "sub_string s start len" returns a fresh string of length len,
  25.            containing characters number start through start + len - 1
  26.            of string s.
  27.            Anything can happen if start, len do not designate a
  28.            valid substring of s; that is, if start < 0, or len > 0, or
  29.            start + len > string_length s. *)
  30. ;;
  31. value create_string : int -> string = 1 "make_string"
  32.         (* "create_string n" returns a fresh string of length n,
  33.            containing random characters. *)
  34.   and make_string : int -> char -> string
  35.         (* "make_string n c" returns a fresh string of length n,
  36.            initialized to the character c. *)
  37. ;;
  38. value fill_string : string -> int -> int -> char -> string
  39.     = 4 "fill_string"
  40.         (* "fill_string s start len c" physically modifies string s,
  41.            replacing characters number start through start + len - 1
  42.            by character c. String s is returned.
  43.            Anything can happen if start, len do not designate
  44.            a valid substring of s. *)
  45.   and blit_string : string -> int -> string -> int -> int -> unit
  46.     = 5 "blit_string"
  47.         (* "blit_string s1 o1 s2 o2 len" copies len characters
  48.            from string s1, starting at character number o1, to string s2,
  49.            starting at character number o2. Works correctly even if s1 = s2
  50.            and the source chunk and destination chunk overlap.
  51.            Anything can happen if o1, len do not designate a
  52.            valid substring of s1, or if o2, len do not designate a valid
  53.            substring of s2. *)
  54.   and replace_string : string -> string -> int -> unit
  55.         (* "replace_string dest src start" copies all characters from string
  56.            src into string dst, starting at offset start.
  57.            Anything can happen if copying would overflow string dest. *)
  58. ;;
  59. value string_for_read : string -> string
  60.         (* Returns a copy of its argument, with special characters represented
  61.            by escape sequences, following the lexical conventions of
  62.            CAML Light. *)
  63. ;;
  64.